Information entry mechanism for small keypads

ABSTRACT

Presentation of results of a predictive analysis of text is delayed until entry of the text by a user is paused by a particular amount of time. The results are available for selection by the user for another particular amount of time. After the other particular amount of time is expired, the results are no longer available to for selection. If a particular result is selected, the selected result either replaces or supplements the entered text.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.12/619,608, filed Nov. 16, 2009.

U.S. patent application Ser. No. 12/619,608 is a continuation of U.S.patent application Ser. No. 10/360,541, filed Feb. 5, 2003, nowabandoned. We hereby incorporate by reference the entirety of theforegoing applications.

FIELD OF THE INVENTION

This invention relates to the field of information entry in electronicdevices, and more specifically to a mechanism which is both efficientand intuitive to the user for entering information in a reduced keypad.

BACKGROUND OF THE INVENTION

The dramatic increase of popularity of the Internet has led to acorresponding dramatic rise in the popularity of textual communicationssuch as e-mail and instant messaging. Increasingly, browsing of theWorld Wide Web of the Internet and textual communications are beingperforming using reduced keypads such as those found on mobiletelephones.

Multi-tap systems provide usable but less than convenient text entryfunctionality for users of the Roman or similar alphabet. Briefly,multi-tap systems determine a number of repeated presses of a key todisambiguate multiple letters associated with a single key. For example,pressing the “2” key once represents the letter “a;” pressing the “2”key twice represents the letter “b;” pressing the “2” key thricerepresents the letter “c;” and pressing the “2” key four (4) timesrepresents the numeral “2.” The number of presses of a particular key istypically delimited with a brief pause. While feasible, entering textualdata of the Roman alphabet using multi-tap is cumbersome andtime-consuming.

Some attempts have been made to use predictive interpretation of keypresses to disambiguate multiple written symbols associated withindividual keys. Such predictive interpretation is described by ZiCorporation on the World Wide Web and in U.S. Pat. No. 5,109,352 toRobert B. O'Dell (hereinafter the O'Dell patent). Predictiveinterpretation is generally effective and greatly simplifies text inputusing reduced keypads with very large collections of written symbols.However, predictive interpretation has difficulty with words used inproper nouns, slang, and neology as such words might not be representedin a predictive database.

Despite its great efficiency, predictive interpretation of key pressesfor disambiguation provides a somewhat less than intuitive userexperience. In particular, predictive interpretation lacks accuracyuntil a few characters have been specified. The following example isillustrative.

Consider that a user is specifying the word “forest” using a numerictelephone keypad. In predictive interpretation, the user presses thefollowing sequence of keys: 3-6-7-3-7-8. It should be appreciated thatentering “forest” using multi-tap is significantly more cumbersome,pressing 3-3-3-6-6-6-7-7-7-3-3-7-7-7-7-8. Entry of text in which two ormore consecutive letters are presented by the same key is exacerbated bythe need to pause for a period of time between specifying each suchletter to delimit the respective letter. In predictive interpretation,pressing “3” by the user does not necessarily interpret and display “f”as the indicated letter. Instead, an “e” or a “d” could be displayed tothe user as the interpretation of the pressing of the “3” key. In somepredictive interpretation implementations, the entire predicted word isdisplayed to the user. Since numerous words begin with any of theletters d, e, or f, it is rather common that the predicted word is notwhat the user intends to enter. Thus, as the user presses the “3” key tobegin spelling “forest,” an entirely different word such as “don't” canbe displayed as a predicted word.

As the user presses the second key in spelling “forest,” namely, the “6”key, some word other than “forest” can continue to be displayed as thepredicted word. What can be even more confusing to the user is that thepredict word can change suddenly and dramatically. For example, pressingthe “6” key can change the predicted word from “don't” to“eminently”—both of which are spelled beginning with the “3” keyfollowed immediately by the “6” key—depending upon frequency of usage ofthose respective words. To obtain full efficiency of predictiveinterpretation systems, the user continues with the remainder of thesequence—finishing with 7-3-7-8. Once the full sequence is entered, onlyone word—or just a few words—match the entered sequence. However, untilthat point is reached, the user is required to place faith and trustthat the predictive interpretation will eventually arrive at the correctinterpretation notwithstanding the various displayed incorrectinterpretations early in the spelling of the desired word.

What is needed is an improved mechanism for efficiently disambiguatingamong multiple symbols associated with individual keys of a reducedkeypad while continuing to provide accurate and reassuring feedback tothe user.

SUMMARY OF THE INVENTION

In accordance with the present invention, display of results ofpredictive interpretation of key presses is postponed for a period oftime such that a user entering multiple characters is not interruptedwith repeated guesses as to what the user is intending to enter.Specifically, predictive analysis begins immediately following pressingof a key by the user, but results of such analysis are not displayeduntil at least a predetermined amount of time, e.g., 0.5 seconds, haselapsed since the last key press by the user. Accordingly, the user'sexperience in entering data is substantially enhanced.

It is helpful to consider the illustrative example of specifying“deforestation” using a reduced keypad. In accordance with the presentinvention, the user specifies “defo” unambiguously. During the entry ofthese first four characters, the user does not pause longer than thepredetermined period of time. Accordingly, the user does not see anypredicted candidates for the intended data. While predictive analysiswas performed immediately following specification of each character, noresults of such analysis were ever displayed to interrupt or confuse theuser.

After specifying “defo,” the user pauses for at least the predeterminedperiod of time. The user is most likely to pause if the user becomessomewhat confused as to which key to press next or if the user hasdetermined that a sufficient number of characters have been specifiedthat predictive analysis can produce accurate results. In either case,presentation of predicted candidates of the user's intended data is awelcome event. Since the user has paused for at least the predeterminedamount of time, results of predictive analysis are presented to theuser.

It is also advantageous that the user does not wait indefinitely forresults of predictive analysis. Therefore, if results of predictiveanalysis are not available by no less than a second predetermined amountof time from the last key press, e.g., 2.0 seconds, no predictedcandidates of the user's intended data are presented to the user. It ispreferred that some characteristic of the display is changed to indicateto the user that predicted candidates are not forthcoming. For example,a blinking cursor can indicate that predictive analysis is under waywhile a transition from a blinking cursor to a solid cursor indicatesthat predictive candidates are not available.

In addition, the availability of predictive candidates can be indicatedto the user, either immediately or upon elapsing of the predeterminedamount of time. The user can request display of any available predictedcandidates by making a user input gesture so indicating. For example, aword being entered by the user can be highlighted, e.g., with a dottedunderline, to indicate that predicted candidates for completion of theword are available and a soft key can be labeled to indicate thatpressing the soft key causes display of available predicted candidates.Thus, display of results of predictive analysis of user input data canbe explicitly requested by the user.

To ensure that results of predictive analysis are thorough and completeprior to presentation to the user, such results can be consideredavailable only when resources for predicted candidates have beenthoroughly and completely processed. Alternatively, partial results ofpredictive analysis can be considered available while predictiveanalysis continues and adds to the already available partial resultsuntil processing is terminated at the elapsing of the secondpredetermined amount of time from the last key press.

In addition, the same advantages can be realized on full-size keyboards.Some word processors—such as StarOffice from Sun Microsystems of PaloAlto, Calif., and OpenOffice from the OpenOffice.org community of whichSun Microsystems is a member—include a word completion feature which canpresent predictive candidates to the user as the user types a partialword. By only displaying predicted candidates to the user when the userhas paused for a predetermined amount of time, such word processorswould not quickly flash predicted candidates to the user as the usercontinues to type, thereby avoiding a somewhat annoying experience forthe user.

These advantages are also applicable to non-textual data. For example,predicted candidates of contact records, images, sounds, and data filescan be presented to the user without interrupting the user by waitingfor a predetermined amount of time from the last user input gesture,e.g., key press, before presenting such candidates. In some contexts,multiple data types can be active and it is possible that the userpartially specifies a number of data records of more than one of theactive data types. In this case, the user is presented withrepresentations of each data type, e.g., icons, from which the userselects an intended data type. Then, predicted candidates of theselected data type are presented to the user for selection.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a mobile telephone which is used for textual communication.

FIG. 2 shows a diagram of a timeline of information entry in a mobiletelephone.

FIG. 3 shows a block diagram of the mobile telephone which is used fortextual communication.

FIG. 4 shows a logic flow diagram of predictive analysis of input text.

FIG. 5 shows a logic flow diagram of managing user input in predictiveanalysis of input text.

FIG. 6 shows a logic flow diagram of managing time-outs in predictiveanalysis of input text.

FIG. 7 shows a logic flow diagram of managing a predictive analysisresult in predictive analysis of input text.

FIG. 8 shows a logic flow diagram of predictive analysis of input text.

FIG. 9 shows a logic flow diagram of presenting predictive results forselection by a user.

FIG. 10 shows a block diagram of a predictive database.

FIGS. 11-14 show a display of mobile telephone presenting predictiveresults and selection by a user.

FIG. 15 shows a mobile telephone displaying a message in which a word ishighlighted with a dotted underline to indicate the predicted candidatesare available to the user in accordance with the present invention.

FIG. 16 shows a mobile telephone displaying a message in which predictedcandidates for multiple data types are available to the user inaccordance with the present invention.

DETAILED DESCRIPTION

In accordance with the present invention, display of results ofpredictive interpretation of user input gestures is postponed for aninterval of time. The user is permitted to continue entry of datawithout interruption during the interval of time. The user is thereforenot distracted while entering such data. Predicted candidates are onlydisplayed to the user after a pause in user input gestures of at least apredetermined minimum duration. Such a pause is presumed to indicatethat the user is either puzzled or intentionally awaiting predictedcandidates.

FIG. 1 shows a mobile telephone 100 which is used for textualcommunication. For example, mobile telephone 100 can be used to send andreceive textual messages and/or can be used to browse the ubiquitousWorld Wide Web according to the known and standard Wireless ApplicationProtocol (WAP). Mobile telephone 100 can also be used, in thisillustrative embodiment, to send text messages according to thecurrently available and known Short Message Service (SMS). Of course,other types of devices with reduced keypads are used to enter data forpurposes other than communications. Text entry in mobile telephone 100is merely an illustrative embodiment. Mobile telephone 100 includes akeypad 102 which includes both command keys 104 and data input keys 106.In addition, mobile telephone 100 includes a display screen 108 fordisplay of text and/or graphical information. Mobile telephone 100 alsoincludes a microphone 110 for receiving audio signals and a speaker 112for presenting audio signals to a user.

Data input keys 106, which are sometimes referred to herein collectivelyas numeric keypad 106, are arranged in the typical telephone keypadarrangement as shown. While numeric keypad 106 is described herein as anillustrative example of a reduced keypad, it should be appreciated thatthe principles of the present invention are applicable to other reducedkeypads. As used herein, a reduced keypad is a keypad in which one ormore keys can each be used to enter one of a group of two of moresymbols. For example, the letters “a,” “b,” and “c” are associated with,and specified by a user pressing, the “2” key of numeric keypad 106.

FIG. 2 shows a timing diagram 200 which illustrates the display ofpredicted candidates resulting from predictive analysis in accordancewith the present invention. Time 202 represents a time at which the userhas most recently pressed any of data input keys 106. Until time 206,i.e., during time interval 204, display of any predicted candidates fortext intended to be entered by the user is suppressed. If the userpresses any of data input keys 106 during time interval 204, the usersees no predicted results, and timing diagram 200 is reset to time 202.Accordingly, the user can continue entering text in a conventionalmanner, e.g., using an unambiguous text entry mechanism such asmulti-tap, without interruption as long as the user does not pause forthe entire duration of time interval 204.

However, if the user has paused for the duration of time interval 204,i.e., no key press is detected at time 206 relative to the most recentkey press, display of predicted candidates resulting from predictiveanalysis is enabled at time 206. A few things are worth noting at thispoint. First, predictive analysis begins immediately upon pressing ofany of data input keys 106, i.e., at time 202. Second, it is possiblethat predictive analysis completes prior to time 206. If so,presentation of the resulting predicted candidates to the user issuppressed during time interval 206. However, availability of predictedcandidates can be indicated to the user in a preferably subtle andnon-disruptive manner. Third, it is also possible that predictiveanalysis does not complete by time 206. In this case, predictiveanalysis continues. In this illustrative embodiment, display 108 ismodified at time 206 if predictive analysis continues. For example, thecursor can change from a steady state to a blinking state. Such notifiesthe user that mobile telephone 100 is analyzing data entered by the userthus far to predict a larger portion of data intended by the user. Forexample, given a few letters entered by the user, a blinking cursor canindicate to the user that mobile telephone 100 is processing thoseletters to predict an intended word or phrase.

Predicted candidates can also be made available to the user prior tocompletion of predictive analysis. For example, such partial results canbe indicated to the user as available prior to time 206 and can bepresented to the user while predictive analysis continues during timeinterval 208.

If predictive analysis produces one or more predicted candidates for thedata intended by the user, those predicted candidates are presented tothe user for browsing and selection. In this illustrative embodiment,the user uses command keys 104 to browse among two or more predictedcandidates displayed in display 108 and to select as predicted candidateas the intended data. For example, if the predicted candidates representwords and/or phrases of a text message, selecting a candidate causes thepredicted word or phrase to be included in a message which is currentlybeing composed by the user. The user is also permitted to ignore thedisplayed predicted candidates and to continue using data input keys 106to enter data. Pressing any of data input keys 106 during time interval208, regardless of whether predicted candidates are displayed in display108, causes timing diagram to reset at time 202.

Since all good things must come to an end, predictive analysis is onlypermitted to continue for a limited amount of time in this illustrativeembodiment. Accordingly, predictive analysis terminates at time 210,i.e., at the end of time interval 208. If predictive analysis has notproduced predicted candidates by time 210, no predicted candidates arepresented to the user. In this illustrative embodiment, display 108 isagain modified to indicate to the user that predictive analysisterminated without producing useful predicted candidates, e.g., bychanging the cursor from a blinking state back to a steady state. Theuser therefore does not wait endlessly for predictive analysis if noresults are forthcoming. In this illustrative embodiment, time 210 istwo (2) seconds from time 202. In another embodiment, time 210 does notexist or is set to is such a large amount of time that predictiveanalysis doesn't terminate during data entry by the user. The user canalways terminate predictive analysis, even if such analysis goes on fora considerable amount of time, by continuing to enter data by pressingany of data input keys 106.

After time 210, the user continues to enter data normally, i.e., withoutthe assistance of predictive analysis. Such can include pressing any ofdata input keys 106 to continue specifying a character or pressing oneor more of control keys 104 to indicate that a complete unit, e.g., aword or phrase, has been successfully specified. In the former case,pressing any of data input keys 106 restarts the behavior of mobiletelephone 100 represented in timing diagram 200. In particular, pressingany of data input keys 106 subsequent to time 210 resets at time 202such that predictive candidates are presented to the user after asubsequent occurrence of time 206, i.e., in a subsequent instance oftiming diagram 200.

The result of displaying predicted candidates in the manner described inconjunction with timing diagram 200 is that predictive analysis of dataentry in reduced keypads is much more comfortable and palatable to theuser. Specifically, the user continues to enter data at a reasonablepace without interruption so long as the user does not pause for theduration of time-interval 204. At some point in time, the user may beconfused as to which key to press next or may believe that sufficientdata has been entered such that predictive analysis can make a veryaccurate guess as to the entire word, phrase, or data element intendedby the user. Accordingly, the user pauses for the duration oftime-interval 204 and predicted candidates are displayed after time 206to the user for browsing and selection. If the user was confused, thepredicted candidates can be very helpful. If the user was hoping to seepredicted candidates, then mobile telephone 100 behaves exactly as theuser intends. In either case, presentation of the predicted candidatesis a positive experience for the user and not at all annoying.

Some elements of mobile telephone 100 are shown in diagrammatic form inFIG. 3. Mobile telephone 100 includes a microprocessor 302 whichretrieves data and/or instructions from memory 304 and executesretrieved instructions in a conventional manner.

Microprocessor 302 and memory 304 are connected to one another throughan interconnect 306 which is a bus in this illustrative embodiment.Interconnect 306 is also connected to one or more input devices 308, oneor more output devices 310, and network access circuitry 312. Inputdevices 308 include, for example, keypad 102 (FIG. 1) and microphone110. In alternative embodiments, input devices 308 (FIG. 3) can includeother types of user input devices such as touch-sensitive screens, forexample. Output devices 310 include display 108 (FIG. 1), which is aliquid crystal display (LCD) in this illustrative embodiment, andspeaker 112 for playing audio received by mobile telephone 100 and asecond speaker for playing ring signals. Input devices 308 and outputdevices 310 can also collectively include a conventional headset jackfor supporting voice communication through a convention headset. Networkaccess circuitry 312 includes a transceiver and an antenna forconducting data and/or voice communication through a network.

Call logic 320 includes a collection of instructions and data whichdefine the behavior of mobile telephone 100 in communicating throughnetwork access circuitry 312 in a conventional manner. Dial logic 322includes a collection of instructions and data which define the behaviorof mobile telephone 100 in establishing communication through networkaccess circuitry 312 in a conventional manner. Text communication logic324 includes a collection of instructions and data which define thebehavior of mobile telephone 100 in sending and receiving text messagesthrough network access circuitry 312 in a conventional manner.

Text input logic 326 includes a collection of instructions and datawhich define the behavior of mobile telephone 100 in accepting textualdata from a user. Such text entered by the user can be sent to anotherthrough text communication logic 324 or can be stored as a name of theowner of mobile telephone 100 or as a textual name to be associated witha stored telephone number. As described above, text input logic 326 canbe used for a wide variety of applications other than text messagingbetween wireless devices. Predictive database 328 stores data which isused to predict text intended by the user according to pressed keys ofinput devices 308 in a manner described more completely below.Predictive database 328 is shown in greater detail as block diagram 328(FIG. 10).

Logic flow diagram 400 (FIG. 4) illustrates behavior of the mobiletelephone 100 (FIG. 3) according to text input logic 326 of thisillustrative embodiment. In step 402, the text input logic setsasynchronous interrupt traps for a number of events such as receivinguser input, receiving predictive analysis results, and expiration of atimer.

In step 404, text input logic 326 (FIG. 3) receives a character enteredby the user by use of data input keys 106 (FIG. 1). In this illustrativeembodiment, the user enters characters using conventional multi-taptechniques. Receipt of a character in step 404 corresponds to thebeginning time 202 of the timeline 200 (FIG. 2).

In step 406, text input logic 326 (FIG. 3) begins predictive analysis.Once begun, text input logic 326 performs predictive analysisconcurrently with the steps of logic flow diagram 400. In predictiveanalysis, text input logic 326 collects data previously entered by theuser and predicts therefrom one or more additional characters, whole orpartial words, and/or phrases intended by the user.

Text input logic 326 performs predictive analysis for the Chineselanguage in generally the manner described in the O'Dell patent and thatdescription is incorporated herein by reference. Predictive analysis canbe performed in any of a number of ways for various languages.Generally, a dictionary stores a large collection of words and/orphrases representing the most likely things the user is expected toenter. As the user enters data, those words and/or phrases stored in thedictionary which match the entered data become fewer and fewer innumber. Any such matching words and/or phrases are ranked accordingly tofrequency of use such that the first element of the list of matchingwords and phrases is the most frequently used word or phrase of thelist. In this illustrative embodiment, text input logic 326 expectswords of the English language, and predictive data 328 stores words ofthe English language. In one embodiment, predictive analysis includesusing relative frequency of appearance of bigrams, tri-m grams, etc. torespectively predict second, third, etc. characters in the mannerdescribed in co-pending U.S. patent application Ser. No. 10/360,537 byRoland Williams and Robert O'Dell entitled “Text Entry Mechanism forSmall Keypads” dated Feb. 5, 2003 and that description is incorporatedherein by reference.

In one embodiment, predicted candidates resulting from predictiveanalysis are only made available when predictive analysis completes. Inan alternative embodiment, predictive analysis can make partial resultsavailable, generating one or more events to convey one or morecorresponding parts of the complete set of results.

In step 408 (FIG. 4), text input logic 326 (FIG. 3) sets a timer toexpire at time 206 (FIG. 2). Accordingly, text input logic 326 (FIG. 3)is initially set to trap expiration of time interval 204. As shown, therelative order of steps 406 and 408 is unimportant and, in fact, can beperformed concurrently.

In step 410, text input logic 326 traps an asynchronous event.Asynchronous event traps are well-known and are not described furtherherein. In step 412, text input logic 326 (FIG. 3) determines the typeof asynchronous event trapped in step 410. As described above, threetypes of asynchronous events are trapped in this illustrativeembodiment: receiving user input, receiving predictive analysis results,and expiration of a timer. If the trapped asynchronous event is receiptof user input, i.e., detected pressing of any of data input keys 106,processing transfers to step 418. If the trapped asynchronous event iscompletion of predictive analysis as started in step 406, processingtransfers to step 416. If the trapped asynchronous event is expirationof a timer, processing transfers to step 414.

Logic flow diagram 418 (FIG. 5) shows step 418 in greater detail. Instep 502, text input logic 326 (FIG. 3) terminates predictive analysisthat began in step 406 (FIG. 4). After step 502, processing according tologic flow diagram 418, and therefore step 418 (FIG. 4) completes. Afterstep 418, processing by text input logic 418 transfers to step 404 inwhich the character entered by the user is received and thus to step 408in which timers are reset such that timing diagram 200 (FIG. 2) is resetat time 202.

Step 416 (FIG. 4), in which text input logic 326 processes a trappedasynchronous timeout event, is shown in greater detail as logic flowdiagram 416 (FIG. 7). Operations of timers and trapping asynchronoustimeouts thereof are well known and are not described further herein.

In step 702, text input logic 326 (FIG. 3) determines if the timer iscurrently set to expire at time 206 (FIG. 2). If so, time 206 has notyet been reached and presentation of predictive analysis results ispremature. However, if time 206 has already been reached, the timer isset to expire at time 210 as described more completely below. Therefore,if the timer is not set to expire at time 206, text input logic 326(FIG. 3) determines that presentation of results of predictive analysisis now permitted and presents such results in step 704.

The results of predictive analysis can be presented to the user invarious ways. In one embodiment, a list of predicted candidates, whichare sorted in descending order of frequency of usage, is presented tothe user and the user is free to select from the list, e.g., by usingcontrol keys 104, rather than continuing to specify individualcharacters, e.g., by using data input keys 106. In an alternativeembodiment, the most frequently used predicted candidate is superimposedover text currently entered by the user. Pressing a selected one ofcontrol keys 104, the user can accept the superimposed predictedcandidate. By pressing selected others of control keys 104, the user canscroll up and/or down a list of predicted candidates sorted by frequencyof usage to switch which of the predicted candidates is superimposedover the text entered so far by user.

In step 706 (FIG. 7), text input logic 326 (FIG. 3) clears the timersuch that termination of time-interval 208 is not trapped sincetermination of predictive analysis is no longer necessary. In analternative embodiment in which partial results of predictive analysisare made available to the user, step 706 is skipped such that time 210is recognized to enable termination of predictive analysis at time 210.In this alternative embodiment, text input logic 326 presents predictedcandidates to the user in step 704 while predictive analysis continuesif it has not yet completed. More results of predictive analysis can bemade available to the user in subsequent performances of logic flowdiagram 416 as such results become available during time-interval 208.

Through test step 702, text input logic 326 (FIG. 3) ensures that time206 has been reached prior to presentation of predicted candidates tothe user. In particular, if the timer is set to expire at time 206, time206 has not yet been reached and step 704 is skipped. Thus, according tologic flow diagram 416, if time 206 has been reached when results ofpredictive analysis are available, such results are displayed for theuser; and such results are not displayed if time 206 has not yet beenreached.

In the embodiment shown in FIG. 7, the availability of predictedcandidates is indicated to the use in step 708 despite the fact thattime 206 has not yet been reached. It is preferred that such indicationbe relatively subtle so as to not disrupt data entry by the user. Anillustrative example of a relatively subtle indication is shown in FIG.15. A dotted underline 1502 for the partial word, “resc,” subtlyindicates to the user that mobile telephone 100 has predicted candidatesfor completion of that partial word. Exclamation point 1504 isassociated with soft button 1506 to suggest to the user that pressingsoft button 1506 will allow the user to review and select from thepredicted candidates. A soft button is a button whose function isdynamic. A soft button is typically associated with a dynamic functionindicator such as the adjacent portion of display 108 in whichexclamation point 1504 is displayed.

Step 414 (FIG. 4), in which text input logic 326 (FIG. 3) handlesasynchronous timer expiration, is shown in greater detail as logic flowdiagram 414 (FIG. 6). In test step 602, text input logic 326 (FIG. 3)determines whether the timer is set to expire at time 206 (FIG. 2) inthe manner described above with respect to test step 702 (FIG. 7). Ifthe timer is set to expire at time 206, processing transfers to teststep 604. Conversely, if the time is set to expire at another time,e.g., time 210, processing transfers to step 612.

Initially, the timer is set to expire at time 206, so processingtransfers to test step 604 in which text input logic 326 (FIG. 3)determines whether results of predictive analysis have been received. Ifso, processing transfers to step 606 in which the results are presentedto the user in the manner described above. Conversely, if results ofpredictive analysis are not yet available, processing transfers fromtest step 604 to step 608.

In step 608, text input logic 326 (FIG. 3) changes a prompt or anotheraspect of display 108. Such informs the user that mobile telephone 100is actively processing an implicit request to predict the data intendedby the user. In this illustrative embodiment, text input logic 236changes a cursor within display 108 from a static state to a blinkingstate in step 608. From the user's perspective, mobile telephone 100 hasbeen awaiting data input during time interval 204 as indicated by astatic cursor or similar aspect of information displayed in display 108.Unbeknownst to the user, mobile telephone 100 has been actively workingat predicting intended data as begun in step 406. At time 206, a timerinterrupt is handled in step 414 and, if no predictive analysis resultsare available at that time, a change in a passive state to an activestate is indicated in display 108, e.g., by a blinking cursor. Thus, attime 206, the user perceives that mobile telephone 100 is activelyprocessing data entered so far. This perception is reassuring to a userwho has paused for the duration of time interval 204 either as a resultof uncertainty as to how to continue data entry or as a result ofintentionally triggering predictive analysis.

In step 610 (FIG. 6), text input logic 326 (FIG. 3) sets the timer toexpire at time 210 (FIG. 2) since the next time to trap after time 206is time 210.

If text input logic 326 (FIG. 3) determines in test step 602 that thetimer is set to expire at time 210, e.g., by a previous performance ofstep 610, processing transfers to step 612. In step 612, text inputlogic 326 (FIG. 3) terminates predictive analysis. It should be notedthat step 612 is only reached at time 210 when no results of predictiveanalysis are available or, alternatively, if predictive analysis has notcompleted by time 210 after presentation of partial predictive analysisresults. In step 614, text input logic 326 (FIG. 3) clears the timer sono further timeout events will occur. In step 616, text input logic 326(FIG. 3) changes the prompt, or another aspect of display 108, toindicate to the user a transition from an active state back to a passivestate. Such communicates to the user that no predicted candidates ofintended text are forthcoming.

After any of steps 606, 610, or 616, processing according to logic flowdiagram 414, and therefore step 414 (FIG. 4), completes. After either ofsteps 414-416, processing according to logic flow diagram 400 transfersto step 410 in which the next asynchronous interrupt is trapped.

Text input logic 326 (FIG. 3) handles an asynchronous interrupt trap ofreceiving user input by managing user input in step 418. Step 418 isshown more completely as logic flow diagram 418 (FIG. 5). In step 502,text input logic 326 (FIG. 3) terminates predictive analysis started instep 406 (FIG. 4). After step 502, processing according to step 418completes and processing transfers to step 404. Unlike steps 414-416,after which processing transfers to step 410 in which anotherasynchronous event is trapped, processing transfers from step 418 tostep 404 to interpret the received data as a character of text input andthe overall processing of logic flow diagram 400, as represented intiming diagram 200, restarts.

Logic flow diagrams of FIGS. 4-7 are shown collectively for the reader'sconvenience in FIG. 8. FIGS. 11-14 illustrate an example of usage ofmobile telephone 100 in accordance with the present invention. FIG. 11shows display 108 of mobile telephone 100 (FIG. 1). User specificationof text according to the present invention is described in the contextof an illustrative example of the user specifying the word, “forward.”

Display 108 is divided logically, i.e., by text input logic 326 (FIG.3), into an upper portion—window 108B (FIG. 11) —and a lowerportion—window 108A. Window 108A displays a current word, i.e., the wordcurrently being specified by the user. Window 108B displays previouslyspecified words which have been confirmed by the user and thereforeappended to a current message which can include multiple words duringthe first time-interval 204 (FIG. 2). In an alternative embodiment,display 108 is not divided in this matter and individual charactersspecified by the user are displayed in the context of a message asentered by the user.

In this illustrative example, the user specifies the letter “f” usingmulti-tap user interface techniques, e.g., by pressing the “3” key three(3) times and pausing to confirm the specification of the letter “f.”The results are shown in FIG. 11 in which the letter “f” is displayed inwindow 108A. In this illustrative example, the user has not previouslyspecified any words so window 108B is empty.

In logic flow diagram 400 as shown in FIG. 8, text input logic 326 (FIG.3) receives signals representing the letter “f” as entered by the userin step 404 and displays the letter “f” in window 108A (FIG. 11). Insteps 406 and 408, text input logic 326 respectively begins predictiveanalysis and sets a timer to expire at time 206. In step 410, text inputlogic 326 traps the next asynchronous event. In this illustrativeexample, the user presses the “6” key of numeric keypad 106 prior totime 206 (FIG. 2). However, it is possible that predictive analysiscompletes prior to pressing of the “6” key by the user.

If predictive analysis does not complete prior to pressing of the “6”key by the user, the first asynchronous event trapped by text inputlogic 326 is detected input and processing accordingly transfers to step502 in which any predictive analysis is terminated. From step 502,processing transfers to step 404 in which the input signals areinterpreted as specification of one of the letters associated with the“6” key, namely, “m,” “n,” or “o.” Once any of data input keys 106 ispressed by the user, multi-tap techniques are employed to determinewhich letter is intended by the user. Thus, in this illustrativeembodiment, the user presses the “6” key thrice without a significantpause to indicate the letter “o” is intended.

Suppose, however, for illustration purposes that predictive analysiscompletes prior to pressing the “6” key by the user. In this scenario,the first trapped asynchronous event is the completion of predictiveanalysis by text input logic 326. Accordingly, processing transfers tostep test step 702 (FIG. 8). Since time 206 has not yet been reached,the timer is set to expire at time 206 and processing transfers fromtest step 702 to step 410, bypassing step 704 such that results ofpredictive analysis are not displayed in window 108A (FIG. 12). In step410, the next asynchronous event is trapped.

In this illustrative example, the next asynchronous event is detectionof input signals prior to time 206. Thus, processing transfers to step502 in which the data input signals are processed in the mannerdescribed above. As a result, no predictive results are presenteddespite completion of predictive analysis. Whether predictive analysiscompletes prior to user input or subsequently, results of predictiveanalysis are not shown prior to time 206.

Continuing in this illustrative embodiment, the user enters anothercharacter resulting in the view shown in FIG. 13. Subsequent to receiptof the letter “r” as shown, the user does not press any keys of mobiletelephone 100 prior to time 206. Therefore, a number of possiblesequences of events are possible. In one sequence, predictive analysisresults are available prior to time 206. In another sequence of events,predictive analysis results become available after time 206 and prior totime 210. In a third sequence of events, predictive analysis results arenot available at time 210.

In the first sequence of events, predictive analysis results areavailable prior to time 206. The first event trapped is completion ofpredictive analysis and, since time 206 has not yet been reached,processing transfers through test step 702 to step 410 in the mannerdescribed above. The second event trapped is a timeout event at time 206and processing transfers from step 410 to test step 602. In test step602, text input logic 326 determines whether the timer is set to expireat time 206 or at time 210. Since the timer is set to expired at time206, processing transfers to test step 604 and therefrom to step 606since predictive analysis results are available. In step 606, test inputlogic 326 presents predicted candidates for selection by the user in themanner described above. Such is shown in FIG. 14 in which text inputlogic 326 has predicted that the user intends to enter the word“forward.” The user is free to select this predicted word and add it totext in window 108B in the manner described above. If the user does so,the next event trapped in step 410 is user input and processingtransfers to step 404.

In the second sequence of events, predictive analysis results becomeavailable after time 206. Accordingly, the first event trapped is atimeout at time 206. Processing transfers from step 410 to test step602. Since the timer is set to expire at time 206, processing transfersto test step 604. Since no predictive analysis results are available, isi.e., predictive analysis continues, processing transfers to step 608 inwhich text input logic 326 changes the prompt or another aspect ofdisplay 108 to indicate a transition from a passive state to an activestate. In step 610, text input logic 326 sets the timer to expire attime 210 such that the next timer-related event to be trapped isexpiration of time interval 208.

The next event to be trapped in step 410 in this illustrative example iscompletion of predictive analysis. Accordingly, processing transfers totest step 702 and therethrough to step 704 since the timer is now set toexpire at time 210. In step 704, text input logic 326 presents resultsof predictive analysis to the user for selection and the timer iscleared in step 706. Accordingly, the user can select from among thepredicted candidates and the timer will no longer generate anasynchronous event which could interrupt browsing and selection ofpredicted candidates by the user.

In the third sequence of events, predictive analysis results are notavailable at time 210. In the manner described above, the first eventtrapped is a timeout which causes processing to include steps 602, 604,608, and 610. In step 610, the timer is set to expire at time 210. Sinceresults of predictive analysis are not available at time 210 in thisillustrative sequence of events, the next event trapped at step 410 isanother timeout event. From test step 602, processing transfers to step612 since the timer is set to expire at time 210.

In step 612, text input logic 326 terminates predictive analysis. Instep 614, text input logic 326 clears the timer so no further timeoutevents occur until user input is detected, thereby causing anotherperformance of step 408. In step 616, text input logic 326 changes theprompt or another aspect of display 108 to indicate to the user a changefrom an active state to a passive state such that the user understandsthat predictive analysis results are not forthcoming.

The benefits of the system described above with respect to text entryare also applicable to specification of other types of data. Forexample, a user can enter data representing a file stored within mobiletelephone 100, a contact stored within a contacts database within mobiletelephone 100, an image, or a sound. In some embodiments, the type ofdata which can be specified by the user is clear and unambiguous. Inanother embodiment, various contexts of data input are implemented andeach context can have two or more valid data types. For example, in thecontext of composing a text message, valid types can include all thoselisted above, namely, filenames, contacts, images, and sounds. In thebody of a text message, the user can identify a contact to (i) addressthe message to the contact or (ii) to attach a v-card representingidentified contact information to the message. Similarly, specifying animage, a sound, or any other file stored in mobile telephone 100 in thebody of a message enables attachment of the corresponding file to themessage. In addition, the user can enter ordinary words in the mannerdescribed above.

To support various types of data specified by a user, predictivedatabase 328 includes various databases 1002-1012 (FIG. 10). Filedatabase 1002 includes data specifying files stored within mobiletelephone 100. Contacts database 1004 includes data specifying contactinformation, e.g., telephone numbers, addresses, e-mail addresses, andvarious message service addresses, of individuals whom the user may wishto contact. Images database 1006 includes data specifying informationabout various images stored within mobile telephone 100. Sounds database1008 includes data specifying information about various sounds storedwithin mobile telephone 100, including ring tones, for example.

In addition, predictive database 328 includes a dictionary 1010 of theEnglish language such that text input logic 326 (FIG. 3) can accuratelypredict words of the English language intended by the user during textinput in the manner described above. Predictive database 328 alsoincludes (i) a personal dictionary 1012 which includes words specific tothe user, i.e., proper nouns and slang frequently used by the user orstored in a contacts database used by the user and (ii) a used wordsdictionary 1014 which specifies words previously entered by the usersuch that words entered by the user which are not represented withindictionary 1010. Accordingly, text input logic 326 (FIG. 3) canaccurately predict non-standard words entered by the user, includingslang terms, neologies, and proper nouns for example. Used wordsdictionary 1014 is used in conjunction with databases 1002-1012 to orderpredicted candidates according to frequency and/or recency of use by theuser. Thus, predictive behavior adapts to the specific data entry habitsof the specific user.

Index of remote data 1014 includes references to data similar to datastored in databases 1002-1012 and which is accessible through a network.For example, contact data can be retrieved from known and conventionalLDAP WAP or web servers. Similarly, sounds such as ring tones and musicin the known and ubiquitous MP3 format and be made available throughwireless Internet servers and cataloged and referenced within index ofremote data 1014.

Text input logic 326 predicts data intended by the user whenimplementing multiple data types in the manner shown in logic flowdiagram 900 (FIG. 9). Loop step 902 and next step 910 define a loop inwhich each of the databases 1002-1014 which are valid in the currentcontext. The context is determined by the type of task currently beingperformed by mobile telephone 100. If the user is specifying theintended recipient of a text message, only contacts database 1004 isvalid. During composition of the body of a text message, all databases1002-1014 are valid. During each iteration of the loop of steps 902-910,the particular database processed according to steps 904-908 is referredto as the subject database.

In step 904, text input logic 326 identifies entries in the subjectdatabase which match one or more characters recently specified by theuser. In step 906, text input logic 326 identifies a graphical icon thatis associated with the subject database. For example, a file can beassociated with a file icon; an image can be associated with an imageicon or a thumbnail of the image itself; a sound can be associated witha musical note icon; and a contact can be associated with an index cardicon. In step 906, text input logic 326 associates the graphical iconwith a textual representation of each of the entries. Accordingly,subsequent presentation of any of the entries as results of predictiveanalysis, e.g., in steps 606 or 704, can cause the associate icon to bedisplayed in conjunction with the textual description. Thus, the usercan readily determine the type of data item predicted by text inputlogic 326. For example, an associated icon can indicate to the userwhether a predicted candidate whose textual description is “jack” is acontact, an image, a sound, or a word.

The result of processing according to logic flow diagram 900 is shown inFIG. 16. In display 108, the word, “jack,” is highlighted with a dottedunderline 1602 to indicate that predicted candidates are available forthat word. Display 108 also includes icons 1604-1612, displayed inrespective performances of step 908 (FIG. 9), to indicate the varioustypes of predicted candidates which are available for “jack” in thecontext shown in FIG. 16. Specifically, (i) icon 1604 is a ROLODEX-stylecard to represent contact information associated with “jack,” (ii) icon1606 is a camera to represent one or more graphical images associatedwith “jack,” (iii) icon 1608 is a speaker to represent one or moresounds associated with “jack,” (iv) icon 1610 is document icon torepresent one or more data files associated with “jack,” and (v) icon1612 is a book to indicate one or more words which begin with “jack.”Thus, by using control keys 104, the user can select from the variousdata types represented by icons 1604-1620 to select the type of dataindicated by the entered text, “jack.”

For example, the user can highlight and select icon 1604 to indicatethat “jack” refers to contact information, e.g., of a person. Upon suchselection, mobile telephone 100 allows the user to select from one ormore contact records associated with “jack.”

Once such a record is selected, actions can be associated with contactsand can be initiated by the user. One such action can be to address thecurrent message currently being composed and shown in display 108 to theentity represented by the selected contact record. Another such actionis to associate a v-card data item representing the selected contactrecord for attachment to the current message.

Other actions can be associated with other data types. Sounds in amessage can be embedded in the message such that the sound plays whenthe message is displayed or can be attached as a sound data file. Imagescan be embedded in the message such that the image is a displayedcomponent of the message itself or can be attached as an image datafile. A data file can be attached to the message or the contents of thedata file can be imported into the body of the message.

The above description is illustrative only and is not limiting. Forexample, while text messaging using a wireless telephone is described asan illustrative embodiment, it is appreciated that text entry in themanner described above is equally applicable to many other types of textentry. Wireless telephones use text entry for purposes other thanmessaging such as storing a name of the wireless telephone's owner andassociating textual names or descriptions with stored telephone numbers.In addition, devices other than wireless telephones can be used for textmessaging, such as two-way pagers and personal wireless e-mail devices.Personal Digital Assistants (PDAs) and compact personal informationmanagers (PIMs) can utilize text entry in the manner described here toenter contact information and generally any type of data. Entertainmentequipment such as DVD players, VCRs, etc. can use text entry in themanner described above for on-screen programming or in video games toenter names of high scoring players. Video cameras with little more thana remote control with a numeric keypad can be used to enter text fortextual overlays over recorded video. Text entry in the manner describedabove can even be used for word processing or any data entry in afull-sized, fully-functional computer system.

Therefore, this description is merely illustrative, and the presentinvention is defined solely by the claims which follow and their fullrange of equivalents.

1. A method comprising: receiving, via an input device, entry of userinput including a sequence of data entry key presses; searching aplurality of databases for entries consistent with characters indicatedby the user input received, the searching operation beginning after aninitial one of the data entry key presses and continuing duringsubsequent data entry key presses; utilizing a human-readable display topresent one or more entries found by the searching operation.
 2. Themethod of claim 1, wherein the one or more entries found by thesearching operation includes an icon associated with one of thedatabases.
 3. The method of claim 2, wherein the icon is selectable bythe user to initiate an action associated with the respective database.4. The method of claim 1, further comprising suppressing presentation ofone or more entries found by the searching operation.
 5. The method ofclaim 1, further comprising suppressing presentation of one or moreentries found by the searching operation until a first predeterminedperiod elapses from a most recent one of the data entry key presses. 6.The method of claim 1, wherein one of the databases is a predictive textdatabase, and further comprising suppressing presentation of one or moreentries found by the searching operation based on entries in thepredictive text database.
 7. The method of claim 6, wherein thepredictive text database utilizes an n-gram model.
 8. The method ofclaim 1, wherein the input device is a touch screen display.
 9. Themethod of claim 1, wherein the input device is a keypad.
 10. Anon-transitory computer-readable storage medium storing instructions,said instructions, which when executed by a processor, cause theprocessor to perform: receiving, via an input device, entry of userinput including a sequence of data entry key presses; searching aplurality of databases for entries consistent with characters indicatedby the user input received, the searching operation beginning after aninitial one of the data entry key presses and continuing duringsubsequent data entry key presses; utilizing a human-readable display topresent one or more entries found by the searching operation.
 11. Thenon-transitory computer-readable storage medium of claim 10, wherein theone or more entries found by the searching operation includes an iconassociated with one of the databases.
 12. The non-transitorycomputer-readable storage medium of claim 11, wherein the icon isselectable by the user to initiate an action associated with therespective database.
 13. The non-transitory computer-readable storagemedium of claim 10, further storing instructions that when executedcause the processor to suppress presentation of one or more entriesfound by the searching operation.
 14. The non-transitorycomputer-readable storage medium of claim 10, storing instructions thatwhen executed cause the processor to suppress presentation of one ormore entries found by the searching operation until a firstpredetermined period elapses from a most recent one of the data entrykey presses.
 15. The non-transitory computer-readable storage medium ofclaim 10, wherein one of the databases is a predictive text database,and further storing instructions that when executed cause the processorto suppress presentation of one or more entries found by the searchingoperation based on entries in the predictive text database.
 16. A systemcomprising: a processor coupled to a memory; an input device comprisingkeys, the input device configured for receiving user input including asequence of data entry key presses; a plurality of databases storingsearchable entries, wherein each entry of the searchable entries isstored in association with a sequence of characters, and wherein adatabase of the plurality of databases is configured to be searched forentries stored in association with received user input; wherein thedatabase is searched beginning after an initial one of the data entrykey presses and continuing during subsequent data entry key presses; andan output device comprising a human-readable display configured forpresenting one or more entries found by searching the database.
 17. Thesystem of claim 16, wherein: one of the databases of the plurality ofdatabases is a predictive text database; the human-readable displayconfigured to suppress presentation of the one or more entries found bysearching the database; and the one or more entries are found in thepredictive text database.
 18. The system of claim 17, wherein thepredictive text database utilizes an n-gram model.
 19. The system ofclaim 16, wherein the input device is a touch screen display.
 20. Thesystem of claim 16, wherein the input device is a keypad.